package com.training.java.redbox.struts.web;

import java.util.List;

import javax.servlet.ServletContext;

import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.training.java.redbox.struts.domain.Movie;
import com.training.java.redbox.struts.domain.MovieService;
import com.training.java.redbox.struts.domain.ServiceException;

public class ListMoviesAction extends Action {
	
	@Override

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception
			
	{	
		ServletContext servletContext = servlet.getServletContext();
		
		WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
		MovieService service = context.getBean(MovieService.class);
		
		
			
		try {
			
			List<Movie> movies = service.getAllMovies();

			request.setAttribute("movies", movies);
			//request.getSession().setAttribute("movies", movies);
			
		} catch (ServiceException e) {
			
			
			e.printStackTrace();
		}

			
		return mapping.findForward("listMovies");
		}	
	  }


